Robots for serving food and/or drinks

ABSTRACT

A robot includes: a base having a plurality of wheels; a motor system mechanically coupled to one or more of the wheels; a body having a bottom portion coupled above the base, and a top portion above the bottom portion; a support at the top portion, wherein the support is configured to withstand a temperature that is above 135° F.; and a processing unit configured to operate the robot.

FIELD

This application relates generally to robots, and more specifically, torobots configured to serve food and/or drinks.

BACKGROUND

Many restaurants do not use robots for servicing customers. One reasonis that environments of restaurants pose unique problems that may renderuse of robots difficult and/or unsatisfactory. For example, a restaurantmay have various obstacles and spatial constraints, which makenavigation of robot difficult. Also, restaurants may have variousobjects with different dimensions and heights, such as tables, barstools, chairs, shelves, wine tables, etc., which makes it difficult forthe robot to avoid collision.

SUMMARY

A robot includes: a base having a plurality of wheels; a body having abottom portion coupled above the base, and a top portion above thebottom portion, the top portion configured to support food and/or drink;a first camera at the bottom portion, wherein the first camera isoriented to view upward; and a second camera at the top portion, whereinthe second camera is configured to view upward.

Optionally, the first camera is oriented so that its field of detectioncovers a first area that is not covered by the second camera, andwherein the second camera is oriented so that its field of detectioncovers a second area that is not covered by the first camera.

Optionally, the robot further includes a third camera at the topportion, wherein the third camera is configured to view substantiallyhorizontally.

Optionally, the robot further includes a processing unit configured toobtain a first point cloud from the first camera, and a second pointcloud from the second camera, and process the first and second pointclouds.

Optionally, the processing unit is configured to remove heightcomponents in the first and second point clouds, to obtain first andsecond two-dimensional point clouds, and wherein the processing unit isconfigured to combine the first and second two-dimensional point cloudsto determine an obstacle boundary.

Optionally, the processing unit is configured to steer the robot basedon the obstacle boundary.

Optionally, the robot further includes a processing unit configured toobtain a map of a restaurant, and determine a navigation route withinthe restaurant based on the map.

Optionally, the robot further includes a laser device configured todetect surrounding, e.g., at least behind the robot.

Optionally, the top portion comprises a support that is detachablycoupled to a remaining part of the top portion, the support configuredto support the food and/or the drink.

Optionally, the robot further includes a weight sensor coupled to thesupport.

Optionally, the robot further includes a processing unit configured toreceive an input from a weight sensor or a camera, and process the inputto determine whether an item has been placed on, or removed from, thesupport.

Optionally, the support meets requirements of National SanitizationFoundation (NSF), requirements of American National Standards Institute(ANSI), requirements of U.S. Food and Drug Administration (FDA), or anycombination of the foregoing.

Optionally, the support is configured to withstand a temperature that isabove 135° F.

Optionally, the support comprises Polyethylene Terephthalate (PET),Polyproylene (PP), Polycarbonate (PC), a synthetic fluoropolymer oftetrafluoroethylene, Polychlorotrifluoroethylene (PCTFE), Polyvinylidenefluoride (PVDF), a copolymer of ethylene and chlorotrifluoroethylene, orchlorinated polyvinyl chloride (CPVC).

Optionally, the robot further includes a processing unit configured togenerate a first control signal to stop robot to service a first tablein a restaurant, and generate a second control signal to move the robottowards a next destination in the restaurant based on a satisfaction ofone or more criteria.

Optionally, the one or more criteria comprises a lapse of apredetermined period.

Optionally, the one or more criteria comprises a change in a weightsupported by the robot.

Optionally, the processing unit is configured to determine whether theone or more criteria is satisfied based on an optical image, or based ona parameter determined based on the optical image.

Optionally, the next destination comprises a second table to beserviced, or a home position.

Optionally, the robot further includes an optical camera configured toview a spatial region above a food supporting surface associated withthe top portion.

Optionally, the first camera comprises a first depth-sensing camera, andthe second camera comprises a second depth sensing camera.

Optionally, the robot further includes a third depth-sensing camera.

Optionally, the bottom portion has a first cross sectional dimension,and the top portion has a second cross sectional dimension that islarger than the first cross sectional dimension.

Optionally, the robot further includes a speaker at the top portion orthe bottom portion, and a processing unit configured to control thespeaker to provide audio information.

Optionally, the robot further includes a microphone at the top portionor the bottom portion.

Optionally, the robot further includes one or more programmable buttonsat the top portion.

Optionally, the bottom portion comprises a slot configured toaccommodate a container, wherein the container is sized for holdingtableware and/or food menus.

Optionally, the top portion has a frame that is movable in a verticaldirection from a first position to a second position.

Optionally, the robot further includes a touch-screen device that isdetachably coupled to the top portion or the bottom portion.

Optionally, the robot further includes a first motor coupled to a firstwheel of the plurality of wheels, and a second motor coupled to a secondwheel of the plurality of wheels.

A robot includes: a base having a plurality of wheels; a body having abottom portion coupled above the base, and a top portion above thebottom portion; and a support at the top portion, wherein the support isconfigured to withstand a temperature that is above 135° F.

Optionally, the support meets requirements of National SanitizationFoundation (NSF), requirements of American National Standards Institute(ANSI), requirements of U.S. Food and Drug Administration (FDA), or anycombination of the foregoing.

Optionally, the support comprises Polyethylene Terephthalate (PET),Polyproylene (PP), Polycarbonate (PC), a synthetic fluoropolymer oftetrafluoroethylene, Polychlorotrifluoroethylene (PCTFE), Polyvinylidenefluoride (PVDF), a copolymer of ethylene and chlorotrifluoroethylene, orchlorinated polyvinyl chloride (CPVC).

Optionally, the support is configured to support food and/or drinks.

Optionally, the robot further includes one or more camera(s) locatedbelow the support.

A robot includes: a base having a plurality of wheels; a motor systemmechanically coupled to one or more of the wheels; a body having abottom portion coupled above the base, and a top portion above thebottom portion; a support at the top portion, wherein the support isconfigured to withstand a temperature that is above 135° F.; and aprocessing unit configured to operate the robot.

Optionally, the top portion comprises a support for supporting the foodand/or the drink, and wherein the robot further comprises one or moreweight sensor(s) coupled to the support; and wherein the processing unitis configured to provide a signal to operate the motor system based onan output from the one or more weight sensor(s).

Optionally, the robot further includes a microphone, wherein theprocessing unit is configured to provide a signal to operate the motorsystem in response to a voice command received by the microphone.

Optionally, the robot further includes a user interface, wherein theprocessing unit is configured to provide a signal to operate the motorsystem in response to an input received by the user interface.

Optionally, the user interface comprises a button and/or a touch screen.

Optionally, the robot further includes a wireless communication device,wherein the processing unit is configured to provide a signal to operatethe motor system in response to an input received by the wirelesscommunication device.

Optionally, the robot further includes a first camera configured tosense object(s) outside the robot.

Optionally, the robot further includes a second camera, wherein thefirst camera is oriented so that its field of detection covers a firstarea that is not covered by the second camera, and wherein the secondcamera is oriented so that its field of detection covers a second areathat is not covered by the first camera.

Optionally, the robot further includes a third camera configured to viewsubstantially horizontally.

Optionally, the processing unit is configured to obtain a first pointcloud from the first camera, and a second point cloud from the secondcamera, and process the first and second point clouds.

Optionally, the processing unit is configured to remove heightcomponents in the first and second point clouds, to obtain first andsecond two-dimensional point clouds, and wherein the processing unit isconfigured to combine the first and second two-dimensional point cloudsto determine an obstacle boundary.

Optionally, the processing unit is configured to steer the robot basedon the obstacle boundary.

Optionally, the processing unit is configured to provide a first signalto operate the motor system to drive the robot to a first destination ina facility, and wherein the processing unit is also configured todetermine whether a criterion for leaving the first destination is met,and to provide a second signal to operate the motor system to drive therobot away from the first destination if the criterion for leaving thefirst destination is met.

Optionally, the criterion comprises a maximum lapsed time since arrivalat the first destination, and wherein the processing unit is configuredto provide the second signal to operate the motor system if a lapsedtime since arrival at the first destination reaches the maximum lapsedtime.

Optionally, the processing unit is configured to obtain a map of afacility, and determine a navigation route within the facility based onthe map.

Optionally, the robot further includes a laser device configured todetect surrounding.

Optionally, the robot further includes a weight sensor coupled to thesupport.

Optionally, the processing unit is configured to receive an input from aweight sensor or a camera, and process the input to determine whether anitem has been placed on, or removed from, the support.

Optionally, the support meets requirements of National SanitizationFoundation (NSF), requirements of American National Standards Institute(ANSI), requirements of U.S. Food and Drug Administration (FDA), or anycombination of the foregoing.

Optionally, the processing unit is configured to drive the robot to afirst destination to service a first table in a facility.

Optionally, the bottom portion has a first cross sectional dimension,and the top portion has a second cross sectional dimension that islarger than the first cross sectional dimension.

Optionally, the robot further includes a speaker at the top portion orthe bottom portion, wherein the processing unit is configured to controlthe speaker to provide audio information.

Optionally, the robot further includes a microphone at the top portionor the bottom portion.

Optionally, the robot further includes one or more programmable buttonsat the top portion.

Optionally, the bottom portion comprises a slot configured toaccommodate a container, wherein the container is sized for holdingtableware and/or food menus.

Optionally, the top portion has a frame that is movable in a verticaldirection from a first position to a second position.

Optionally, the robot further includes a touch-screen device that isdetachably coupled to the top portion or the bottom portion.

Optionally, the motor system comprises a first motor coupled to a firstwheel of the plurality of wheels, and a second motor coupled to a secondwheel of the plurality of wheels.

Other and further aspects and features will be evident from reading thefollowing detailed description of the embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings illustrate the design and utility of embodiments, in whichsimilar elements are referred to by common reference numerals. Thesedrawings are not necessarily drawn to scale. In order to betterappreciate how the above-recited and other advantages and objects areobtained, a more particular description of the embodiments will berendered, which are illustrated in the accompanying drawings. Thesedrawings depict only typical embodiments and are not therefore to beconsidered limiting of its scope.

FIGS. 1 -3 illustrate a robot in accordance with some embodiments.

FIG. 4 illustrates an example of object detection technique using anunique camera system setup.

FIG. 5 illustrates a method of collision avoidance.

FIG. 6 illustrates a method performed by a robot.

FIGS. 7-8 illustrate a robot in accordance with some embodiments.

FIG. 9 illustrates a processing unit of a robot in accordance with someembodiments.

DESCRIPTION OF THE EMBODIMENTS

Various embodiments are described hereinafter with reference to thefigures. It should be noted that the figures are not drawn to scale andthat elements of similar structures or functions are represented by likereference numerals throughout the figures. It should also be noted thatthe figures are only intended to facilitate the description of theembodiments. They are not intended as an exhaustive description of theinvention or as a limitation on the scope of the invention. In addition,an illustrated embodiment needs not have all the aspects or advantagesshown. An aspect or an advantage described in conjunction with aparticular embodiment is not necessarily limited to that embodiment andcan be practiced in any other embodiments even if not so illustrated.

FIGS. 1-3 illustrate a robot 100 in accordance with some embodiments.The robot 100 includes a base 102 having a plurality of wheels 104. Therobot 100 also includes a body 110 having a bottom portion 112 coupledabove the base 102, and a top portion 114 above the bottom portion 112,wherein the top portion 114 is configured to support food and/or drink.The top portion 114 and the bottom portion 112 may be integrally formedtogether in some embodiments. In such cases, the top portion 114 and thebottom portion 112 refer to different parts of a component.Alternatively, the top portion 114 and the bottom portion 112 may beseparate components that are mechanically coupled together. The robot100 also includes a first camera 120 at the bottom portion 112, whereinthe first camera 120 is oriented to view upward. The robot 100 furtherincludes a second camera 122 at the top portion 114, wherein the secondcamera 122 is configured to view upward. The robot 100 also includes athird camera 124 at the top portion 114, wherein the third camera 124 isconfigured to view substantially horizontally. As used in thisspecification, the term “substantially horizontally” or a similar termrefers to an orientation that is horizontal (0°)±30° or less, such as0°±15°. In other embodiments, the robot 100 may not include the thirdcamera 124, and the third camera 124 is optional.

In the illustrated embodiments, the bottom portion 112 has a first crosssectional dimension, and the top portion 114 has a second crosssectional dimension that is larger than the first cross sectionaldimension. However, the robot 100 should not be limited to theconfiguration (e.g., shape) shown. In other embodiments, the robot 100may have other configurations. Also, in the illustrated embodiments, therobot 100 has a maximum cross sectional dimension that is 36 inches orless, and more preferably 30 inches or less, or even more preferably 24inches or less, such as 18 inches plus-or-minus 2 inches. This allowsthe robot 100 to navigate through crowd in a restaurant and/or throughclosely spaced furniture in a restaurant. In other embodiments, therobot 100 may have a maximum cross sectional dimension that is differentfrom the examples provided. In the illustrated embodiments, the firstand second portions 112, 114 are separate components that are assembledtogether. In other embodiments, the first and second portions 112, 114may have an unity configuration. For example, they may be parts of asame housing in other embodiments.

In the illustrated embodiments, the first camera 120 comprises a firstdepth-sensing camera, and the second camera 122 comprises a second depthsensing camera. Also, the third camera 124 may comprise a thirddepth-sensing camera. In other embodiments, the first, second, and thirdcameras 120, 122, 124 may be other types of cameras.

As shown in FIG. 2, having the first camera 120 viewing upward isadvantageous because its field of range of detection covers certain area(e.g., area 250) that cannot be covered by the second camera 122.Similarly, having the second camera 122 viewing downward is advantageousbecause its field of range of detection covers certain area (e.g., area252) that cannot be covered by the first camera 120. Thus, the firstcamera 120 may detect an object in front of the top portion 114 of therobot that is higher up from the ground, and that is not detectable bythe second camera 122. Similarly, the second camera 122 may detect anobject in front of the bottom portion 112 and in front of the base 102,and that is not detectable by the first camera 120. Also, for certaindepth sensing camera, it may have a zone (blind spot) such that thecamera may not detect things too close from it—e.g., within a certaindistance (e.g., up to 40 cm from the camera). Having the arrangement ofcameras shown in FIG. 2 also addresses such problem. In someembodiments, the cameras 120, 122 may be oriented so that theycollectively can detect obstacle that is within 5 meters from the robot100. In other embodiments, the obstacle detection range may be more than5 meters or less than 5 meters, from the robot 100. It should be notedthat the term “upward” as used in this specification refers to adirection that is pointing above a horizontal plane and that is anywherein a range defined by a vertical axis ±45°. Accordingly, a camera facing“upward” may refer to a camera-facing direction pointing above ahorizontal plane and that is anywhere between 45° (measured from avertical axis) and −45° (measured from the vertical axis). Similarly,the term “downward” as used in this specification refers to a directionthat is pointing below a horizontal plane and that is anywhere in arange defined by a vertical axis ±45°. Accordingly, a camera facing“downward” may refer to a camera-facing direction pointing below ahorizontal plane and that is anywhere between 45° (measured from avertical axis) and −45° (measured from the vertical axis).

In addition, having the third camera 124 viewing forward may beadvantageous because it detects objects that are further than the regioncovered by the first and second cameras 120, 122. In particular, whilethe first and second cameras 120, 122 together may provide a fullcoverage (i.e., no “blind spot”) around the robot 100, their coveragemay extend only a short distance from the robot 100. The third camera124 may extend the coverage to regions that are further from the robot100. In other embodiments, the first and second cameras 120, 122 maydetect objects that are sufficiently far (e.g., 6 inches, 1 ft, 1 ft, 3ft, 4 ft, 5 ft, 6 ft, 8 ft, 10 ft, 12 ft, etc.) from the robot 100. Insuch cases, the robot 100 may not need the third camera 124.

In some embodiments, the first and second cameras 120, 122 (andoptionally the third camera 124) may be oriented so that theycollectively cover all of the blind spots of all of the cameras. In someembodiments, the field of detection of the first camera 120 may coverthe second camera 122, and the field of detection of the second camera122 may cover the first camera 120. In other embodiments, the field ofdetection of the first camera 120 may not cover the second camera 122,and the field of detection of the second camera 122 may not cover thefirst camera 120.

In other embodiments, the robot 100 may include fewer than threecameras, or more than three cameras. For example, in other embodiments,the robot 100 may include only two cameras if the two cameras togethercan provide all of the detection coverage in front of the robot 100.This may be possible when one or both of the cameras have a wide angleof “view” or detection, such as an angle of detection that is 90° ormore. In further embodiments, the robot 100 may include only a singlecamera if such camera has a wide angle of “view” or detection, such asan angle of detection that is 180°.

The robot 100 also includes a processing unit 130 configured to controlvarious components of the robot 100. The processing unit 130 may beimplemented using hardware, software, or a combination of both. In oneimplementation, the processing unit 130 may comprise a printed circuitboard (PCB) with various components. In other embodiments, theprocessing unit 130 may be one or more integrated circuit(s) coupledtogether. Also, in some embodiments, the processing unit 130 may includeone or more processors, such as general purpose processors, ASICprocessors, FPGA processors, etc.

The robot 100 also includes a first motor 140 coupled to a first wheelof the plurality of wheels 104, and a second motor 142 coupled to asecond wheel of the plurality of wheels 104. The motors 140, 142 may beactivated together to rotate the wheels 104 in the same direction at thesame rate to translate the robot 100 forward or backward. The motors140, 142 may also be activated together to rotate only one of the twowheels 104, rotate the wheels in the same direction at different rates,or rotate the wheels 104 in different directions to thereby turn therobot 100. In other embodiments, the robot 100 may have a transportsystem that is different from that described. For example, in otherembodiments, the robot 100 may have a single motor for controlling twowheels 104, and an independent steering mechanism for turning a thirdwheel. As another example, the robot 100 may have four wheels, such asfour omni-directional wheels. In further embodiments, the robot 100 mayinclude other types of wheels, such as tractor-type wheels.

In the illustrated embodiments, the robot 100 further includes a laserdevice 150 (shown in FIG. 2) configured to detect a surrounding, e.g.,at least behind the robot. The laser device 150 may include a lasersource configured to provide laser beam, and a motor configured rotatethe laser beam. In one implementation, the laser device 150 may be alidar device, which may have a detection range that is 10 m or more(e.g., 20 m). In some embodiments, the laser device 150 may beconfigured to provide data regarding a surrounding behind the robot,wherein the field of detection is at least 180°. In other embodiments,the field of detection may be more than 180° (e.g., 220° or more, 360°,etc.). In further embodiments, the field of detection may be less than180°. Also, in other embodiments, the laser device 150 may be configuredto detect a surrounding in front of the robot. In the illustratedembodiments, the laser device 150 is configured to provide input to theprocessing unit 130, which then processes such input to localize therobot 100 with respect to the surrounding. In some embodiments, a threedimensional map of the restaurant may be obtained and stored in anon-transitory medium 152 in the robot 100. The processing unit 130 maybe configured to obtain signals from the laser device 150, and generatea real-time three-dimensional model of the surrounding. The processingunit 130 may then compare the three-dimensional model with the threedimensional map to identify the location of the robot 100.

Also, in the illustrated embodiments, the processing unit 130 of therobot 100 includes a navigation control 160 configured operate themotors 140, 142 of the robot 100 in order to navigate the robot 100 todifferent locations in a restaurant. The navigation control 160 isconfigured to obtain a map of the restaurant, a current position of therobot 100, and a target position of the robot 100, and operate themotors 140, 142 to move the robot 100 from the current position to thetarget position based on the map of the restaurant. Also, the processingunit 130 of the robot 100 may be configured to determine a navigationroute within the restaurant based on the map. In some embodiments, themap of the restaurant may be transmitted wirelessly to the robot 100,and may be stored in the non-transitory medium 152 in the robot 100. Forexample, the map may be transmitted from a remote server, a cell phone,a tablet, etc. In other embodiments, the map of the restaurant may bestored in a USB drive, and may be transmitted from the USB drive to therobot 100 after the USB drive is plugged into a USB port at the robot100.

In the illustrated embodiments, the robot 100 also includes a tray 200for supporting various items, such as food, drinks, tableware, menus,to-go boxes, check, etc. The tray 200 that is detachably coupled to apart of the top portion 114. Such feature allows the tray 200 to beremoved from the robot 100 for cleaning, serving customers, and/orreplacement purpose. In some cases, the tray 200 may be considered to bea part of the top portion 114. The robot 100 also includes a weightsensor 210 for sensing a weight supported by the tray 200. The weightsensor 210 may be implemented using one or more strain gauges (e.g., 3strain gauges, 4 strain gauges, etc.). As shown in the figure, the tray200 has a planar supporting surface. In other embodiments, the tray 200may have other configurations. For example, in other embodiments, thetray 200 may include glass holder(s) and/or bottle holder(s).Accordingly, as used in this specification, the term “tray” should notbe limited to a supporting structure having a planar supporting surface,and may include any support structure or mechanical component designedto hold different items in a restaurant. In the illustrated embodiments,the weight sensor 210 is coupled to the processing unit 130, whichallows the processing unit 130 to control the robot 100 based on inputprovided by the weight sensor 210. For example, in some embodiments, theprocessing unit 130 of the robot 100 may be configured to determine ifan item has been placed on the tray 200. If so, the processing unit 130may determine whether to move the robot 100 to a certain location basedon the sensed weight. In one implementation, a restaurant server mayplace a food item on the tray 200 for delivery to a certain table. Whenthe processing unit 130 determines that an item has been placed on atray based on input from the weight sensor 210, the processing unit 130may then operate the motors 140, 142 of the robot 100 to deliver theitem to a certain table (e.g., a table input to the robot 100 by theserver). Alternatively or additionally, the processing unit 130 of therobot 100 may determine if an item has been removed from the tray 200.If so, the processing unit 130 may determine whether to move the robot100 to a certain location based on the weight change sensed by theweight sensor 210. In one implementation, the robot 100 may deliver acertain item (e.g., food) to a certain table. When the customer at thetable has removed the item from the robot 100, the weight sensor 210provides an input to the processing unit 130. The processing unit 130determines that there is a reduction of the weight supported by the tray200 of the robot 100, indicating that the customer has removed the itembeing delivered by the robot 100. The processing unit 130 may thenoperate the motors 140, 142 of the robot 100 to move the robot to a nextdestination.

In other embodiments, instead of, or in addition to, having the weightsensor 210, the robot 100 may also include an optical camera configuredto view a spatial region above a food supporting surface associated withthe top portion 114 (e.g., a spatial region above the tray 200). In suchcases, the processing unit 130 may be configured to determine whether anitem has been placed on the tray 200, or removed from the tray 200 basedon an optical image obtained from the camera. For example, the cameramay obtain an image of the spatial region above the tray 200 (while thetray 200 is not supporting any items) as a reference image. Suchreference image may be stored in the non-transitory medium 152 in therobot 100. When an item has been placed on the tray 200, the cameracaptures an image, and transmits the image to the processing unit 130for processing. The processing unit 130 may compare the image with thereference image stored in the non-transitory medium 152. In someembodiments, the comparing of the images by the processing unit 130 maybe implemented by the processing unit 130 determining a correlationvalue between the two images. If the two images are different, theprocessing unit 130 may determine that an item has been placed on thetray 200.

Similarly, the camera may obtain an image of the spatial region abovethe tray 200 after an item has been placed on the tray 200. Suchreference image may be stored in the non-transitory medium 152 in therobot 100. When the item has been removed from the tray 200, the cameracaptures an image, and transmits the image to the processing unit 130for processing. The processing unit 130 may compare the image with thereference image stored in the non-transitory medium 152. In someembodiments, the comparing of the images by the processing unit 130 maybe implemented by the processing unit 130 determining a correlationvalue between the two images. If the two images are different, theprocessing unit 130 may determine that an item has been removed from thetray 200.

In some embodiments, the capturing of the image by the camera may beperformed in response to a change in the weight supported by the tray200. For example, when an item has been placed on the tray 200, and/orwhen an item has been removed from the tray 200, the processing unit 130will receive an input from the weight sensor 210 indicating thecorresponding weight being sensed by the weight sensor 210. Theprocessing unit 130 may then determine whether there is a weight change,and if so, the processing unit 130 may generate a signal to cause thecamera to take an image. Alternatively, the camera may be configured tocontinuously generate images (e.g., a video) of the spatial region abovethe tray 200. In such cases, the generating of the images will not bebased on any sensed weight. The processing unit 130 in such cases may beconfigured to analyze the images in real time, and determine whether anitem has been placed on the tray 200, or removed from the tray 200.

It should be noted that the food and/or drink supporting mechanism isnot limited to the tray 200 illustrated in the example. In otherembodiments, the food and/or drink may be supported by any support,which may be any type of tray, or may have a configuration differentfrom that of a tray. The support may be made from a sanitizablematerial, such as a material that would not produce any chemical and/orthat would not exhibit a color change or color deterioration, when itcontacts with a corrosive sanitizer (e.g., Chlorox). Alternatively oradditionally, the material of the support may be dishwasher safe. Forexample, the support material may be robust enough to withstand heat(such as any temperature above 100° F. (e.g., from 100° F. to 200° F.),above 110° F. (e.g., from 110° F. to 140° F., above 135° F., etc.) andchemicals used in commercial dishwasher. Also, in some embodiments, thesupport material may be a food-contact safe material approved by Food &Drug Administration (FDA). In some embodiments, the support material maybe an acid resistant plastic, such as a synthetic fluoropolymer oftetrafluoroethylene, Polychlorotrifluoroethylene (PCTFE), Polyvinylidenefluoride (PVDF), a copolymer of ethylene and chlorotrifluoroethylene,chlorinated polyvinyl chloride (CPVC), etc. Other examples of materialsthat may be used for the support include Polyethylene Terephthalate(PET), Polyproylene (PP), Polycarbonate (PC), glassteel, fiberglass,plastic, polycarbonate, etc. Furthermore, in some embodiments, thesupport may be constructed to meet requirements of National SanitizationFoundation (NSF), requirements of American National Standards Institute(ANSI), such as NSF/ANSI 2, 4, 36, 59, requirements of U.S. Food andDrug Administration (FDA), or any combination of the foregoing. In otherembodiments, the support may be constructed to meet requirements ofanother agency or government body outside the U.S. (such as in Korea,China, Europe, Japan, etc.).

As shown in FIG. 3, the robot 100 further includes speakers 300 at thetop portion 114. Alternatively, the speakers 300 may be at the bottomportion 112. The processing unit 130 may include an audio processingmodule 162 configured to control the speakers 300 to provide audioinformation. For example, in some embodiments, the processing unit 130may operate the speakers 300 to inform a customer that food has arrived,and may instruct the customer to take a certain food item beingsupported on the robot 100. As another example, the processing unit 130may operate the speakers 300 to inform a customer that a check hasarrived. In other embodiments, the robot 100 may include only a singlespeaker 300, or more than two speakers 300.

In the illustrated embodiments, the robot 100 further includes amicrophone 138 at the top portion 114. The microphone 138 is configuredto receive sound, and provide microphone output signal for processing bythe processing unit 130. In some embodiments, the processing unit 130may include a sound processing module 164 configured to process themicrophone output signal to identify a command and/or a request. Forexample, a customer or a user may instruct the robot 100 to go back to a“home” position by speaking “Go home” to the microphone 138. As anotherexample, a customer may ask for menu, order food, order drink, requestcheck, request server, request to-go box, etc., or any combination ofthe foregoing. The microphone 138 receives such audio request(s) and mayprovide corresponding microphone output signals for storage in thenon-transitory medium 152, and/or for wireless transmission to a speaker(e.g., a speaker of a device worn by a server, a speaker in a kitchen,etc.). Alternatively, or additionally, the microphone output signals maybe converted into a message for storage in a server or external device(e.g., a cell phone, a tablet, etc.), and a server may retrieve suchmessage at any time desired by the server. In other embodiments, themicrophone 138 may be implemented at the bottom portion 112 of the robot100. Also, in other embodiments, the robot 100 may include more than onemicrophone 138. For example, in other embodiments, the robot 100 mayinclude two microphones 138, which allow a direction of sound to bedetermined by the processing unit 130. In further embodiments, the robot100 may include no microphone.

As shown in FIG. 1, the robot 100 further includes two programmablebuttons 170 at the top portion 114. Each button 170 may be programmed toachieve a desired function. By means of non-limiting examples, eachbutton 170 may be programmed to instruct the robot 100 to return to the“home” position, go to a dedicated position, provide a check, ask for aserver, etc. In some cases, the robot 100 may include a user interface(e.g., a touch screen) for allowing a user of the robot 100 to programthe buttons 170. The user interface may display a list of availablefunctions for association with one or both of the buttons 170. Once theuser selects a function for a certain button 170 using the userinterface, the selection is then stored in the non-transitory medium 152in the robot 100, and the button 170 will be assigned for the selectedfunction. In other cases, a user may access an application in a cellphone or tablet, and use the application to program the button(s) 170.In such cases, the application may transmit the selected function forthe button(s) 170 to a cloud for transmission to the robot 100, ordirectly to the robot 100 wirelessly. In further cases, the button(s)170 may be programmed by an administrator or manufacturer of the robot100. In such cases, the button(s) 170 are already pre-programmed beforethe robot 100 is delivered to a restaurant. In other embodiments, therobot 100 may include more than two programmable buttons 170, or noprogrammable button. Also, in other embodiments, the button(s) 170 mayhave a dedicated function that is pre-determined, in which case, thebutton(s) 170 may not be programmable.

In the illustrated embodiments, the processing unit 130 of the robot 100includes an obstacle detector 180 configured to obtain a first pointcloud from the first camera 120, a second point cloud from the secondcamera 122, and the third point cloud from the third camera 124, andprocess the first, second, and third point clouds. In oneimplementation, the obstacle detector 180 of the processing unit 130 isconfigured to remove height components in the first, second, and thirdpoint clouds, to obtain first, second, and third two-dimensional pointclouds. For example, if the first point cloud includes a point withcoordinate (X=23, Y=55, Z=83), then the obstacle detector 180 of therobot 100 removes the height component (Z=83 in the example) to convertthe 3D point to a 2D coordinate (X=23, Y=55). After the two-dimensionalpoint clouds have been determined, the obstacle detector 180 thencombines the first, second, and third two-dimensional point clouds todetermine an obstacle boundary. The processing unit 130 may control therobot 100 based on the determined obstacle boundary. For example, theprocessing unit 130 may generate a control signal to stop the robot 100and/or to steer the robot 100 to a different direction to thereby avoida collision based on the determined obstacle boundary. In otherembodiments, instead of using point clouds from all three cameras 120,122, 124, the obstacle detector 180 may use only point clouds from thefirst and second cameras 120, 122 to determine the obstacle boundary.

FIG. 4 illustrates an example of the above obstacle detection technique.As shown in the figure, there is a table 400 in a restaurant. The table400 has a table edge 402. In the illustrated example, there is also apurse 410 on the floor partially below the table 400. As the robot 100approaches the table 400, the first camera 120 facing upward detects thetable edge 402, but it cannot detect the purse 410 on the floor.However, the second camera 122 facing downward can detect the purse 410on the floor, but it cannot detect the table edge 402. The table edge402 detected by the first camera 120 is captured as first point cloudthat is transmitted by the first camera 120 to the processing unit 130.Similarly, the purse 410 detected by the second camera 122 is capturedas second point cloud that is transmitted by the second camera 122 tothe processing unit 130. Each point in the point cloud has athree-dimensional coordinate representing a position of a point relativeto a camera coordinate system. The obstacle detector 180 in theprocessing unit 130 performs coordinate transformation for one or bothof the first and second point clouds so that all the captured points(captured by both cameras 120, 122) can be combined with reference tothe same coordinate system. The obstacle detector 180 also removes theheight components in the first and second point clouds, to obtain firstand second two-dimensional point clouds. Removing the height componentsin the point clouds has the effect of compressing all of the detectedsurfaces of the objects into a single plane. After the two-dimensionalpoint clouds have been determined, the obstacle detector 180 thenidentify the boundary formed by the two-dimensional point clouds, anduses the boundary as the obstacle boundary. As shown in the figure, thedetermined obstacle boundary in the example includes a first boundaryportion 420 that corresponds with a part of an outline of the table edge402, a second boundary portion 422 that corresponds with a part of theoutline of the purse 410, and a third boundary portion 424 thatcorresponds with a part of an outline of the table edge 402. Theprocessing unit 130 may operate the robot 100 based on the determinedobstacle boundary. In some embodiments, the processing unit 130 mayoperate the robot 100 to prevent the robot 100 from reaching theobstacle boundary, or to prevent the robot 100 from reaching a certainlocation that is a margin (e.g., 3 inches, 6 inches, 1 ft, etc.) awayfrom the obstacle boundary. Forming an obstacle boundary based onobjects at different height using the above technique has the effect ofcreating an artificial vertical boundary 430 that captures the boundaryof the different objects at different heights. This technique ofcreating a collision avoidance boundary for the robot 100 is easy toimplement and does not require significant computational resources.

In the above example, the obstacle boundary is described as beinggenerated based on point clouds obtained using the first and secondcameras 120, 122. In other embodiments, point cloud from the thirdcamera 124 may also be used to determine the obstacle boundary. In suchcases, the obstacle detector 180 of the processing unit 130 combine allof the point clouds from the first, second, and third cameras 120, 122,124 to form the obstacle boundary.

Also, in the above example, the robot 100 has been described as beingable to detect obstacles that are stationary. In other embodiments, therobot 100 may detect moving obstacles, such as persons, food carts, etc.in a restaurant. The cameras 120, 122 (and optionally also camera 124)may detect objects in real-time, and the processing unit 130 may processpoints cloud from these cameras to determine collision avoidanceboundary in real-time. This allows the processing unit 130 to detect amoving object, e.g., a person, and to operate the robot 100 to stop orto go around the person.

FIG. 5 illustrates a method 500 of collision avoidance. The method 500may be performed by the robot 100. The method 500 includes obtaining afirst point cloud from the first camera (item 502), obtaining a secondpoint cloud from the second camera (item 504), and obtaining a thirdpoint cloud from the third camera (item 506). In some embodiments, items502, 504, and 506 may be performed simultaneously. The method 500 alsoincludes removing height components in the first, second, and thirdpoint clouds, to obtain first, second, and third two-dimensional pointclouds (item 510). Next, the first, second, and third two-dimensionalpoint clouds are combined to determine an obstacle boundary (item 512).Next, the robot 100 is operated based on the obstacle boundary (item514). For example, the processing unit 130 may generate a control signalto stop the robot 100, and/or to steer the robot 100 to a differentdirection, based on the obstacle boundary. Although the method 500 hasbeen described with reference to utilizing three cameras to obtain threepoint clouds for determining the obstacle boundary, in otherembodiments, the third camera is optional and is not needed. In suchcases, the method 500 may not include item 506, and the obstacleboundary in item 512 is determined based on the combination of the firstand second two-dimensional point clouds.

In some embodiments, the processing unit 130 of the robot 100 may beconfigured to navigate the robot 100 to move to different locations in arestaurant based on input from a scheduler 182. The scheduler 182 may beimplemented as a part of the processing unit 130. For example, thescheduler of the processing unit 130 may operate the robot 100 to go toa first table to provide a first service, and then return to a “home”position. As another example, the scheduler of the processing unit 130may operate the robot 100 to go to a first table to provide a firstservice, and then to a second table to provide a second service, etc. Insome embodiments, the scheduler of the processing unit 130 may beprogrammable via a user interface. For example, the robot 100 mayinclude a user interface (e.g., a touchscreen) that allows a user of therobot 100 to program a schedule for the robot 100. In oneimplementation, the user interface may allow a user to select whichtable to go to, and the criterion for leaving the table. For example, auser may program the robot 100 to go to table No. 7 (e.g., for deliveryof a food item), and the criterion for the robot 100 to leave that tablemay be programmed to be a reduction in a weight (e.g., a weight changeregardless of the amount of change, or a weight change that is more thana certain prescribed threshold) sensed by a weight sensor under afood-supporting tray of the robot 100. In such cases, after the robot100 has been programmed, the user may launch the robot 100 to go totable No. 7 to deliver a food item. After the robot 100 arrives at thetable, the robot 100 then stops, and wait for the customer at table No.7 to take the food item. Once the food item has been removed from thetray of the robot 100, the processing unit 130 receives an input fromthe weight sensor indicating that the item supported on the tray hasbeen removed, the processing unit 130 then determines that theprogrammed criterion has been satisfied. Then the processing unit 130operates the robot 100 to go to a next destination programmed in therobot 100. For example, if the next destination is “home”, then theprocessing unit 130 will operate the robot 100 to go the “home”position. If the next destination is table No. 4 (to deliver a check),then the processing unit 130 will operate the robot 100 to go to tableNo. 4. Once the robot 100 has reached table No. 4, the robot 100 mayprint a check (e.g., using a printer installed in the robot 100). Therobot 100 then waits for the customer at table No. 4 to take the check.When the printer (or the robot 100) senses that a check has been taken,the processing unit 130 then determines that the criterion for leavingtable No. 4 has been satisfied, and may then operate the robot 100 to gothe a next destination.

In the above example, the generation of a control signal to move therobot 100 (e.g., away from a table, to service a table, to return home,etc.) has been described with reference to a satisfaction of a weightcriterion (e.g., a change in weight, or a change in weight that exceedsa certain amount). Alternatively or additionally, the criteria foroperating the robot 100 to move the robot 100 may be based on othercriteria or criterion. For example, in some cases, the operation of therobot 100 may be based on a lapse of a predetermined period (e.g., 30seconds, 1 minute, etc.). In such cases, if the robot 100 has reached atable, it will stay there for the predetermined period. If nothinghappens, the robot 100 will leave the table after the pre-determined haslapsed. In some cases, if a certain event (e.g., a removal of an itemfrom the tray 200) occurs before the predetermined period has lapsed,the robot 100 may leave the table before the predetermined period haslapsed. Alternatively, in other cases, regardless of whether a certainevent has occurred, the robot 100 may stay at the table until thepredetermined period has lapsed.

As another example, the criteria for operating the robot 100 to move therobot 100 may be satisfied by an image or image parameter. For example,if the robot 100 includes a camera viewing the spatial region above thetray 200, the camera may provide images for indicating whether an itemhas been removed from the tray 200, and/or whether an item has beenplaced on the tray 200. The processing unit 130 may be configured toprocess such images and determine whether an event has occurred. Forexample, if the image(s) indicates that an item has been removed fromthe tray 200, the processing unit 130 may then operate the robot to movethe robot to a next destination. In some cases, the processing unit 130may process the image(s) to determine one or more image parameters, suchas contrast, color, extracted feature, image correlation value, etc.,and operate the robot 100 to move the robot 100 to a next destinationbased on a satisfaction of one or more criteria by the imageparameter(s).

As a further example, the criteria for operating the robot 100 to movethe robot 100 may be based on a command received by a customer or aserver. For example, a customer at a table may press the button 170 orprovide a voice command. In response, the robot 100 may then move to anext destination (e.g., “home” position, another table) in therestaurant. As another example, a server at the restaurant may alsopressing the button 170, or providing a voice command. In response, therobot 100 may move to a next destination.

FIG. 6 illustrates a method 600 performed by a robot. The method 600includes operating motor(s) in the robot to move the robot to a firsttable in a restaurant to service the first table (item 602), generatinga first control signal to stop the robot to service the first table in arestaurant (item 604), and generating a second control signal to movethe robot towards a next destination in the restaurant based on asatisfaction of one or more criteria (item 606). In one implementation,for item 604, the first control signal to stop the robot may begenerated by the processing unit 130 when the robot has reached adesired position associated with the first table. The desired positionmay be a designated area next to (e.g., within a certain distance, suchas 6 inches, 1 ft, etc., from) the first table. Thus, the processingunit 130 may determine the actual position of the robot, and determinewhether the robot has reached the desired position. If not, theprocessing unit 130 continues to navigate the robot until it has reachedthe desired position. Also, by means of non-limiting examples for item606, the one or more criteria may comprise a lapse of a predeterminedperiod (e.g., robot will leave the table after a certain pre-determinedperiod, e.g., 30 seconds, 1 minute, etc., has lapsed), a change in aweight supported by the robot, a criterion satisfied by an image or animage parameter, a command received by a customer or a server (e.g., thecustomer or server pressing button 170, or providing a voice command),or any combination of the foregoing. The next destination may be asecond table to be serviced by the robot, a “home” position, etc.

It should be noted that the robot 100 should not be limited to theconfiguration, shape, and features described, and that the robot 100 mayhave other configurations, shapes, and features in other embodiments.For example, as shown in FIGS. 7-8, in other embodiments, the robot 100may have the configuration shown in the figure. In the illustratedembodiments, the bottom portion 112 of the robot 100 comprises a slot700 configured to accommodate a container 702, wherein the container 702is sized for holding tableware and/or food menus. Also, the top portion114 of the robot 100 has a frame 710 that is movable in a verticaldirection from a first position to a second position. When the frame 710is in the first position (like that shown in FIG. 8), the top portion114 provides a single space for accommodating different items (e.g., forsupporting food, drinks, tableware, menus, etc.). When the frame 710 isin the second position (like that shown in FIG. 7), the top portion 114provides two layers of space for accommodating different items.

In the illustrated embodiments, the robot 100 further includes atouch-screen device 800 that is detachably coupled to the top portion114. Alternatively, the touch-screen device 800 may be detachablycoupled to the bottom portion 112 of the robot. In some embodiments, thetouch-screen device 800 provides a user interface for allowing a user ofthe robot 100 to enter commands and/or to program the robot 100.

The robot 100 of FIGS. 7-8 may have any of the features described withreference to the robot 100 of FIGS. 1-3.

In some embodiments, the robot 100 may include a rechargeable batteryfor powering the various components of the robot 100. The battery may becharged using a cable, or a wireless charging pad.

In one or more embodiments of the robot 100 described herein, the robot100 may optionally further include a credit card reader. For example,the credit card reader may be implemented at the top portion 114, andincludes a slot for receiving a credit card. This allows the robot 100to receive a credit card from a customer at a table, and process thecredit card in the presence of the customer. The robot 100 may alsooptionally include a printer for printing a receipt for the customer.

Also, in some embodiments, instead of having just a single robot 100servicing a restaurant, there may be multiple robots 100 servicing thesame restaurant. In such cases, each robot 100 may include a wirelesscommunication unit configured to communicate with other robot(s) 100 inthe restaurant. In some embodiments, a service requested for a table maybe communicated to all robots 100 in the restaurant (e.g., a server maytransmit such request via a handheld device, such as a cell phone, atablet, etc., or via a computer). The robots 100 may then collectivelydecide which one of the robots 100 to perform the service based on apre-determined algorithm. For example, the pre-determined algorithm mayselect one of the robots to be the one closest to the table to beserviced, based on one of the robots with the least workload, etc. Oncea service by the selected robot has been completed, the service requestis then updated in all of the robots. Alternatively, in otherembodiments, the robots 100 may not need to communicate with each other.Instead, all of the robots 100 may be configured to communicate with oneor more servers wirelessly. For example, servers may carry handhelddevices, e.g., cell phones, tablets, etc., and they can send requestswirelessly to different robots 100 in the restaurant.

It should be noted that the term “non-transitory medium”, as used inthis specification, may refer to one or more storage(s) or memoryunit(s). If there are multiple storage(s) or memory unit(s), they may beparts of a single storage device or memory device, or alternatively,they may be separate storage devices or memory devices (which may or maynot be coupled together).

Although the robot 100 has been described as being configured to servefood and/or drinks in a restaurant, in other embodiments, the robot 100may be configured to serve food and/or drinks in other environments. Bymeans of non-limiting examples, the robot 100 may be configured to servefood and/or drinks in nursing home, casino, hotel, airport, airplane,house, cafeteria, etc. Accordingly, the map described herein may be amap of a nursing home, a map of a casino, a map of a hotel, a map of anairport, a map of an airplane cabin, a map of a house, a map of acafeteria, etc.

Processing Unit

FIG. 9 is a block diagram that illustrates an embodiment of a processingunit 1200 of a robot. The processing unit 1200 may be the processingunit 130 in the robot 100 of FIG. 1 or FIG. 7. As shown in FIG. 9, theprocessing unit 1200 includes a bus 1202 or other communicationmechanism for communicating information, and a processor 1204 coupledwith the bus 1202 for processing information. The processing unit 1200also includes a main memory 1206, such as a random access memory (RAM)or other dynamic storage device, coupled to the bus 1202 for storinginformation and instructions to be executed by the processor 1204. Themain memory 1206 also may be used for storing temporary variables orother intermediate information during execution of instructions to beexecuted by the processor 1204. The processing unit 1200 furtherincludes a read only memory (ROM) 1208 or other static storage devicecoupled to the bus 1202 for storing static information and instructionsfor the processor 1204. A data storage device 1210, such as a magneticdisk or optical disk, is provided and coupled to the bus 1202 forstoring information and instructions.

The processing unit 1200 may be coupled via the bus 1202 to a display1212, such as a flat panel, for displaying information to a user. Aninput device 1214, including alphanumeric and other keys, is coupled tothe bus 1202 for communicating information and command selections toprocessor 1204. Another type of user input device is cursor control1216, such as a mouse, a trackball, or cursor direction keys forcommunicating direction information and command selections to processor1204 and for controlling cursor movement on display 1212. This inputdevice typically has two degrees of freedom in two axes, a first axis(e.g., x) and a second axis (e.g., y), that allows the device to specifypositions in a plane.

The processing unit 1200 may be used for performing various functions(e.g., calculation) in accordance with the embodiments described herein.According to one embodiment, such use is provided by processing unit1200 in response to processor 1204 executing one or more sequences ofone or more instructions contained in the main memory 1206. Suchinstructions may be read into the main memory 1206 from anothercomputer-readable medium, such as storage device 1210. Execution of thesequences of instructions contained in the main memory 1206 causes theprocessor 1204 to perform the process acts described herein. One or moreprocessors in a multi-processing arrangement may also be employed toexecute the sequences of instructions contained in the main memory 1206.In alternative embodiments, hard-wired circuitry may be used in place ofor in combination with software instructions to implement the invention.Thus, embodiments of the invention are not limited to any specificcombination of hardware circuitry and software.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing instructions to the processor 1204 forexecution. Such a medium may take many forms, including but not limitedto, non-volatile media, volatile media, and transmission media.Non-volatile media includes, for example, optical or magnetic disks,such as the storage device 1210. Volatile media includes dynamic memory,such as the main memory 1206. Transmission media includes coaxialcables, copper wire and fiber optics, including the wires that comprisethe bus 1202. Transmission media can also take the form of acoustic orlight waves, such as those generated during radio wave and infrared datacommunications.

Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CD-ROM, any other optical medium, punch cards, paper tape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to the processor 1204 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to the processing unit 1200can receive the data on the telephone line and use an infraredtransmitter to convert the data to an infrared signal. An infrareddetector coupled to the bus 1202 can receive the data carried in theinfrared signal and place the data on the bus 1202. The bus 1202 carriesthe data to the main memory 1206, from which the processor 1204retrieves and executes the instructions. The instructions received bythe main memory 1206 may optionally be stored on the storage device 1210either before or after execution by the processor 1204.

The processing unit 1200 also includes a communication interface 1218coupled to the bus 1202. The communication interface 1218 provides atwo-way data communication coupling to a network link 1220 that isconnected to a local network 1222. For example, the communicationinterface 1218 may be an integrated services digital network (ISDN) cardor a modem to provide a data communication connection to a correspondingtype of telephone line. As another example, the communication interface1218 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN. Wireless links may also beimplemented. In any such implementation, the communication interface1218 sends and receives electrical, electromagnetic or optical signalsthat carry data streams representing various types of information.

The network link 1220 typically provides data communication through oneor more networks to other devices. For example, the network link 1220may provide a connection through local network 1222 to a host computer1224 or to equipment 1226 such as a radiation beam source or a switchoperatively coupled to a radiation beam source. The data streamstransported over the network link 1220 can comprise electrical,electromagnetic or optical signals. The signals through the variousnetworks and the signals on the network link 1220 and through thecommunication interface 1218, which carry data to and from theprocessing unit 1200, are exemplary forms of carrier waves transportingthe information. The processing unit 1200 can send messages and receivedata, including program code, through the network(s), the network link1220, and the communication interface 1218.

Although particular embodiments have been shown and described, it willbe understood that they are not intended to limit the claimedinventions, and it will be obvious to those skilled in the art thatvarious changes and modifications may be made without departing from thespirit and scope of the claimed inventions. The specification anddrawings are, accordingly, to be regarded in an illustrative rather thanrestrictive sense. The claimed inventions are intended to coveralternatives, modifications, and equivalents.

What is claimed:
 1. A robot comprising: a base having a plurality of wheels; a motor system mechanically coupled to one or more of the wheels; a body having a bottom portion coupled above the base, and a top portion above the bottom portion; a support at the top portion, wherein the support is configured to withstand a temperature that is above 135° F.; and a processing unit configured to operate the robot.
 2. The robot of claim 1, wherein the top portion comprises a support for supporting the food and/or the drink, and wherein the robot further comprises one or more weight sensor(s) coupled to the support; and wherein the processing unit is configured to provide a signal to operate the motor system based on an output from the one or more weight sensor(s).
 3. The robot of claim 1, further comprising a microphone, wherein the processing unit is configured to provide a signal to operate the motor system in response to a voice command received by the microphone.
 4. The robot of claim 1, further comprising a user interface, wherein the processing unit is configured to provide a signal to operate the motor system in response to an input received by the user interface.
 5. The robot of claim 4, wherein the user interface comprises a button and/or a touch screen.
 6. The robot of claim 1, further comprising a wireless communication device, wherein the processing unit is configured to provide a signal to operate the motor system in response to an input received by the wireless communication device.
 7. The robot of claim 1, further comprising a first camera configured to sense object(s) outside the robot.
 8. The robot of claim 7, further comprising a second camera, wherein the first camera is oriented so that its field of detection covers a first area that is not covered by the second camera, and wherein the second camera is oriented so that its field of detection covers a second area that is not covered by the first camera.
 9. The robot of claim 8, further comprising a third camera configured to view substantially horizontally.
 10. The robot of claim 8, wherein the processing unit is configured to obtain a first point cloud from the first camera, and a second point cloud from the second camera, and process the first and second point clouds.
 11. The robot of claim 10, wherein the processing unit is configured to remove height components in the first and second point clouds, to obtain first and second two-dimensional point clouds, and wherein the processing unit is configured to combine the first and second two-dimensional point clouds to determine an obstacle boundary.
 12. The robot of claim 11, wherein the processing unit is configured to steer the robot based on the obstacle boundary.
 13. The robot of claim 1, wherein the processing unit is configured to provide a first signal to operate the motor system to drive the robot to a first destination in a facility, and wherein the processing unit is also configured to determine whether a criterion for leaving the first destination is met, and to provide a second signal to operate the motor system to drive the robot away from the first destination if the criterion for leaving the first destination is met.
 14. The robot of claim 13, wherein the criterion comprises a maximum lapsed time since arrival at the first destination, and wherein the processing unit is configured to provide the second signal to operate the motor system if a lapsed time since arrival at the first destination reaches the maximum lapsed time.
 15. The robot of claim 1, wherein the processing unit is configured to obtain a map of a facility, and determine a navigation route within the facility based on the map.
 16. The robot of claim 1, further comprising a laser device configured to detect surrounding.
 17. The robot of claim 1, further comprising a weight sensor coupled to the support.
 18. The robot of claim 1, wherein the processing unit is configured to receive an input from a weight sensor or a camera, and process the input to determine whether an item has been placed on, or removed from, the support.
 19. The robot of claim 1, wherein the support meets requirements of National Sanitization Foundation (NSF), requirements of American National Standards Institute (ANSI), requirements of U.S. Food and Drug Administration (FDA), or any combination of the foregoing.
 20. The robot of claim 1, wherein the processing unit is configured to drive the robot to a first destination to service a first table in a facility.
 21. The robot of claim 1, wherein the bottom portion has a first cross sectional dimension, and the top portion has a second cross sectional dimension that is larger than the first cross sectional dimension.
 22. The robot of claim 1, further comprising a speaker at the top portion or the bottom portion, wherein the processing unit is configured to control the speaker to provide audio information.
 23. The robot of claim 1, further comprising a microphone at the top portion or the bottom portion.
 24. The robot of claim 1, further comprising one or more programmable buttons at the top portion.
 25. The robot of claim 1, wherein the bottom portion comprises a slot configured to accommodate a container, wherein the container is sized for holding tableware and/or food menus.
 26. The robot of claim 1, wherein the top portion has a frame that is movable in a vertical direction from a first position to a second position.
 27. The robot of claim 1, further comprising a touch-screen device that is detachably coupled to the top portion or the bottom portion.
 28. The robot of claim 1, wherein the motor system comprises a first motor coupled to a first wheel of the plurality of wheels, and a second motor coupled to a second wheel of the plurality of wheels. 